package com.uzai.console.service.groupsendjob;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.groupsendjobdetail.*;
import com.uzai.console.vo.groupsendjob.GroupSendJobSubVo;
import com.uzai.console.vo.groupsendjob.GroupSendMsgVo;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface GroupSendJobDetailService {

    /**
     * 查询群发子任务列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param query
     * @return null
     */
    Page<GroupSendJobSubVo> findGroupSendJobSubList(GroupSendJobSubQuery query);

    /**
     * 查询群发子任务详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubIdDto
     * @return null
     */
    GroupSendJobSubVo findGroupSendJobSub(GroupSendJobSubIdDto groupSendJobSubIdDto);

    /**
     * 修改群发子任务开始时间
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubUpdateDto
     * @return null
     */
    void updateGroupSendJobSub(GroupSendJobSubUpdateDto groupSendJobSubUpdateDto);

    /**
     * 开始群发子任务
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubIdDto
     * @return null
     */
    void startGroupSendJobSub(GroupSendJobSubIdDto groupSendJobSubIdDto);

    /**
     * 暂停群发子任务
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubIdDto
     * @return null
     */
    void pauseGroupSendJobSub(GroupSendJobSubIdDto groupSendJobSubIdDto);

    /**
     * 结束群发任务
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubIdDto
     * @return null
     */
    void finishGroupSendJobSub(GroupSendJobSubIdDto groupSendJobSubIdDto);

    /**
     * 删除群发任务
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendJobSubIdDto
     * @return null
     */
    void deleteGroupSendJobSub(GroupSendJobSubIdDto groupSendJobSubIdDto);

    /**
     * 查询群发任务消息列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param query
     * @return null
     */
    Page<GroupSendMsgVo> findGroupSendMsgList(GroupSendMsgQuery query);

    /**
     * 查询群发消息详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendMsgIdDto
     * @return null
     */
    GroupSendMsgVo findGroupSendMsg(GroupSendMsgIdDto groupSendMsgIdDto);

    /**
     * 修改群发消息开始时间
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendMsgUpdateDto
     * @return null
     */
    void updateGroupSendMsg(GroupSendMsgUpdateDto groupSendMsgUpdateDto);

    /**
     * 删除群发消息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param groupSendMsgIdDto
     * @return null
     */
    void deleteGroupSendMsg(GroupSendMsgIdDto groupSendMsgIdDto);
}
